package com.tencent.wxcloudrun.dto.wx;

import com.fasterxml.jackson.annotation.JsonProperty;

import com.tencent.wxcloudrun.vo.request.wx.WxPayRequest;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author Ryan Zhao
 *         <p>
 *         Copyright: Copyright (c) 2023
 *         </p>
 * @version 1.0
 * @date 2023-08-29 16:58
 * @description: 微信支付请求入参
 */
@NoArgsConstructor
@Data
@ApiModel(value = "WxPayDTO", description = "微信支付请求入参")
public class WxPayDTO {

    @ApiModelProperty("结果通知类型")
    @JsonProperty("callback_type")
    private Integer callbackType;

    @ApiModelProperty("云函数环境")
    @JsonProperty("env_id")
    private String envId;

    @ApiModelProperty("结果通知回调云函数名")
    @JsonProperty("function_name")
    private String functionName;

    @ApiModelProperty("结果通知回调云托管信息")
    @JsonProperty("container")
    private WxPayRequest.ContainerDTO container;

    @ApiModelProperty("子商户号")
    @JsonProperty("sub_mch_id")
    private String subMchId;

    @ApiModelProperty("随机字符串")
    @JsonProperty("nonce_str")
    private String nonceStr;

    @ApiModelProperty("商品描述")
    @JsonProperty("body")
    private String body;

    @ApiModelProperty("附加数据")
    @JsonProperty("attach")
    private String attach;

    @ApiModelProperty("商户订单号")
    @JsonProperty("out_trade_no")
    private String outTradeNo;

    @ApiModelProperty("总金额")
    @JsonProperty("total_fee")
    private Integer totalFee;

    @ApiModelProperty("终端IP")
    @JsonProperty("spbill_create_ip")
    private String spbillCreateIp;

    @ApiModelProperty("交易类型")
    @JsonProperty("trade_type")
    private String tradeType;

    @ApiModelProperty("用户标识")
    @JsonProperty("openid")
    private String openid;

    @ApiModelProperty("用户标识")
    @JsonProperty("sub_openid")
    private String subOpenid;

}
